package GestionPlannification;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;


/**
 * Classe permettant d'accéder aux artistes de la base de données
 * @author Julien Reze
 */
public class ArtisteBD {
    /**
     * Recherche un artiste dans la base de données grâce à son id
     * @param idArtiste l'id de l'artiste recherché
     * @return l'artiste trouvé
     * @throws java.sql.SQLException
     * @throws java.lang.Exception
     */
    public static Artiste readArtiste(int idArtiste) throws SQLException, Exception {
        Statement st = null;
        st=BD.UserBD.getStatement();
        ResultSet rs= st.executeQuery("SELECT * FROM artiste WHERE arti_id="+idArtiste+"");
        rs.next();
        Artiste a=new Artiste(idArtiste,rs.getString("arti_nom"),rs.getString("arti_prenom"),"01/01/1900");
        BD.UserBD.close(st);
        return a;
    }

    /**
     * Retourne tous les artistes de la base de données
     * @return la liste des artistes
     * @throws java.sql.SQLException
     * @throws java.lang.Exception
     */
    public static List<Artiste> realAllArtistes() throws SQLException, Exception {
        Statement st = null;
        List<Artiste> lesArtistes = new ArrayList();                     
        st = BD.UserBD.getStatement();
        ResultSet rs;
        rs = st.executeQuery("SELECT * FROM artiste order by arti_nom");
        while (rs.next()) {
            lesArtistes.add(new Artiste(rs.getInt("arti_id"), rs.getString("arti_nom"), rs.getString("arti_prenom"), "01/01/1900"));
        }
        BD.UserBD.close(st);
        return lesArtistes;
    }

    /**
     * Enregistrer un artiste dans la base de donnée
     * @param unArtiste l'artiste a enregistré
     * @throws java.sql.SQLException
     */
    static void saveArtiste(Artiste unArtiste) throws SQLException {
        Statement st = null;
        st=BD.UserBD.getStatement();
        java.sql.Date dateSQL = new java.sql.Date(unArtiste.getDateNaissance().getTime());
        String rqt="INSERT INTO artiste(arti_nom,arti_prenom,arti_dateNaissance) VALUES('"+unArtiste.getNom()+"','"+unArtiste.getPrenom()+"','"+dateSQL+"')";
        st.executeUpdate(rqt);
        BD.UserBD.close(st);
    }

}
